Fric-frac HomeController
Routing
In het bestand Startup.cs staat de Startup
klasse. In de constructor daarvan wordt de standaard route opgegeven. Dat wil zeggen als er geen route is opgegeven volgt ASP.NET MVC de standaard route, namelijk Home/Index:
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace Fric_frac
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
services.AddSingleton<PostcodeApp.Dal.IPostcode>
(p => new PostcodeApp.Dal.PostcodeXml(new PostcodeApp.Bll.Postcode()));
services.AddTransient(p => new Controllers.PostcodeController(new PostcodeApp.Dal.PostcodeXml()));
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}
De HomeController klasse
De klasse maken
Deze controllerklasse is door Visual Studio aangemaakt. We moeten die alleen maar aanpassen aan de vereisten van het Fric-frac project.
De methoden wijzigen
We wijzigen voorlopig alleen de volgende methode:
- Index
In deze methoden creëren we een eigenschap in het ViewBag
object met de naam Title
. Die eigenschap gebruiken we later in de View om het head > title
element in te vullen. Dat element staat in de Master Page en verandert dus bij elke pagina. We kunnen dat niet letterlijk in de Master Page intypen dus doen we dat in de controller.
De View, die we retourneren, heeft dezelfde naam als de actiemethode. We hoeven de naam van de View dus niet expliciet te bepalen. Hiermee volgen we het conventie boven configuratie principe van ASP.NET MVC:
using System.Diagnostics;
using Microsoft.AspNetCore.Mvc;
using Fric_frac.Models;
namespace Fric_frac.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
// Wordt gebruikt in het head->title element
// van de Master Page
ViewBag.Title = "Home";
return View();
}
public IActionResult About()
{
ViewData["Message"] = "Your application description page.";
return View();
}
public IActionResult Contact()
{
ViewData["Message"] = "Your contact page.";
return View();
}
public IActionResult AboutMe()
{
ViewData["Message"] = "Korte biografie";
return View();
}
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}